home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8307.arc / CONTROL1.BAS < prev    next >
BASIC Source File  |  1984-01-23  |  2KB  |  50 lines

  1. 10 SCREEN 2:CLS:KEY OFF
  2. 20 DIM DTA(300):YMAX=0 :YMIN=0
  3. 30 LOCATE 12,20 : PRINT "PLEASE BE PATIENT DURING CALCULATIONS "
  4. 40 XMIN=0 : XMAX=6.28                   'One period to be plotted
  5. 50 FOR I=0 TO 299
  6. 60 DTA(I)=SIN(THETA)                    'Fill data array
  7. 70 THETA =THETA+(XMAX/300)
  8. 80 IF DTA(I)<YMIN THEN YMIN=DTA(I)
  9. 90 IF DTA(I)>YMAX THEN YMAX=DTA(I)
  10. 100 NEXT
  11. 110 CLS
  12. 120 ' PICK THE FIRST WINDOW
  13. 130 W11=.3 : W12=.7                     'Central 40% of horiz. display area
  14. 140 W21=.3 : W22=.7                     'Central 40% of vert. display area
  15. 150 ' MAKE IT LOOK NICE
  16. 160 LOCATE 25,35 : PRINT "FIGURE 1."
  17. 170 LINE (192,100)-(448,100)            'Horizontal line
  18. 180 LINE (192,60)-(192,140)             'Vertical line
  19. 190 LOCATE 7,33 : PRINT "SINE CURVE PLOT"
  20. 200 ' START TO DO THE WORK
  21. 210 GOSUB 440                           'Calculate parameters
  22. 220 GOSUB 320                           'Plot in desired screen window
  23. 230 W11=0 :W12=.2:W21= .8  :W22= 1      'Upper left
  24. 240 GOSUB 440:GOSUB 320
  25. 250 W21=0  : W22=.2                     'Lower left
  26. 260 GOSUB 440:GOSUB 320
  27. 270 W11=.8:W12=1                        'Lower right
  28. 280 GOSUB 440:GOSUB 320
  29. 290 W21=.8 : W22=1!                     'Upper right
  30. 300 GOSUB 440:GOSUB 320
  31. 310 A$=INKEY$:IF A$="" GOTO 310 ELSE END
  32. 320 '   PLOTTING SUBROUTINE
  33. 330 THETA=0
  34. 340 FOR I=0 TO 299
  35. 350 X.DATA.POINT=THETA
  36. 360 Y.DATA.POINT=DTA(I)
  37. 370 REM   ***  CALCULATE SCREEN POSITIONS  ***
  38. 380 XPLOT=INT(T11+T12*X.DATA.POINT)     'Horizontal position
  39. 390 YPLOT=INT(T21+T22*Y.DATA.POINT)     'Vertical position
  40. 400 PSET ( XPLOT, YPLOT )
  41. 410 THETA = THETA + XMAX/300
  42. 420 NEXT I
  43. 430 RETURN
  44. 440 ' SUBROUTINE FOR PARAMETER CALCULATION
  45. 450 T12=640*(W12-W11)/(XMAX-XMIN)
  46. 460 T11=0 +W11*640-T12*XMIN
  47. 470 T22=(0-200)*(W22-W21)/(YMAX-YMIN)
  48. 480 T21=200 + W21*(0-200)-T22*YMIN
  49. 490 RETURN
  50.